Shell
是一個介面,它允許使用者輸入命令來與操作系統互動。
當你在電腦上打開終端模擬器(例如在 Windows
上的 cmd
或 PowerShell
,在 Linux
上的 Bash
),這就是一個典型的 Shell
~
常見的 Shell
包括:
Bash
(Linux
、MacOS
)PowerShell
(Windows
)Zsh
、Ksh
等等首先,打開你的終端機,並輸入以下指令:
ps
就可以看到當前的進程!
以我目前電腦的結果為例,可以看到當前使用的是 zsh
~
或者,讀者可以輸入以下指令,使用環境變數來查看 Shell
~
env | grep SHELL
就可以發現,你的 Shell
在哪、叫啥米了
以我的電腦為例,也可以看到一樣是 zsh
筆者 say say 念:
說完這些,那我們到底要
Shell
做啥?
Shell
可以幫助我們進行一系列的操作,從檔案管理到啟動應用程式。
當我們獲得一個系統的 Shell
,我們就可以在這個系統上執行我們的命令!
這也就是我們常說的「拿到 Shell
」或「取得系統控制權」。
在知道我們有了 Shell
可以幹嘛之後,就來看看 Bind Shell
吧!
Bind Shell
是一種攻擊者與目標系統建立連接的方式。
具體來說,Bind Shell
會在目標系統上開啟一個「監聽器」,等待攻擊者的連接。當攻擊者連接成功後,他們就可以控制目標系統。
筆者 say say 念:
這應該不難理解 XD 就是韓劇裡面常常會出現的劇情!
Bind Shell
就像是監聽器,讀者可以拿去偷聽別人私底下的交易內容,獲得情報(顆顆)
有了資訊你就可以拿到把柄然後控制對方,嘿嘿
一個巴掌拍不響,我們需要目標主機&攻擊主機的互動 ><
目標主機:
首先,在目標主機上啟動一個監聽器,等待攻擊者連接。
這可以通過像 Netcat
這樣的工具來實現,指令如下:
nc -lvnp <port>
參數說明:
-l: 代表監聽模式
-v: 顯示連接信息
-n: 跳過 DNS
解析
-p: 指定監聽的 port
攻擊主機:
在攻擊主機(也就是要對目標主機發動攻擊的機器上)連接目標主機的 IP
& port
:
nc <target-ip> <port>
這樣,攻擊者就可以與目標主機建立一個交互式的會話,從而執行命令並控制目標系統。
筆者 say say 念:
看到這,應該會有人心想,這麼簡單就能拿到控制權,豈不是薛爛???
不,Bind Shell
其實還存在相當多的挑戰,不是這麼容易可以執行的 @@ 還是有挑戰的!
監聽器必須在目標系統上運行:
這意味著「攻擊者需要先設法在目標系統上啟動監聽程式」,這通常需要找到漏洞。
防火牆問題:
大多數系統的「防火牆會阻止外部的入站連接」,這讓 Bind Shell
在真實環境中難以實現,尤其是當目標系統位於嚴格配置的網絡環境中時。
筆者 say say 念:
除了 Bind Shell 外,還有另外一個東東,也就是 Reverse Shell !
它更加實用,因為可以讓攻擊者的系統來啟動監聽,而由目標系統主動發起連接。
就像是海王一樣,真的高招的海王會讓你自己貼上去(????)而不啟動你的防衛機制XD
這種方式更有可能繞過防火牆,因為很多防火牆會允許系統的出站連接,而不攔截它們。
其實原本想要在本篇直接簡介 reverse Shell 的 QQ
但感覺 reverse shell 需要獨立一篇來講它@@
所以,我們就明天來看 reverse shell 吧!哈哈哈哈哈哈哈哈
https://academy.hackthebox.com/